package model.CRUDs;

import model.Venda;
import model.DAO.VendaDAO;
import java.util.List;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;

public class CRUDVenda {
	public static AnnotationConfiguration cfg; 
	public static VendaDAO vendaDAO;
	public static SessionFactory factory;
	public static  CRUDVenda instance = null;

	public CRUDVenda(){
		cfg = new AnnotationConfiguration();
		cfg.addAnnotatedClass(Venda.class);
		factory = cfg.buildSessionFactory();
		vendaDAO = new VendaDAO(factory.openSession());
	}

	/**
	 * Design patterns Singleton
	 */
	public static synchronized CRUDVenda getInstance(){
		if(instance == null){
			instance = new CRUDVenda();			
		}
		return instance;
	}

	public void salvaVenda(Venda venda){
		vendaDAO.salvar(venda);
	}

	public void removeVenda(Venda venda){
		vendaDAO.remove(venda);
	}

	public void atualizarVenda(Venda venda) {
		vendaDAO.atualiza(venda);
		
	}

	public List<Venda> getListaDeVendas() {
		return vendaDAO.getlistaDeVendas();
	}
	
	public Venda getVenda(Integer cod){
		return vendaDAO.getVenda(cod);
	}

}

